# {{ ansible_managed }}

[DEFAULT]
debug = {{ debug }}

# oslo.messaging rpc transport
transport_url = {{ tacker_oslomsg_rpc_transport }}://{% for host in tacker_oslomsg_rpc_servers.split(',') %}{{ tacker_oslomsg_rpc_userid }}:{{ tacker_oslomsg_rpc_password }}@{{ host }}:{{ tacker_oslomsg_rpc_port }}{% if not loop.last %},{% else %}/{{ tacker_oslomsg_rpc_vhost }}{% if (tacker_oslomsg_rpc_use_ssl | lower) | bool %}?ssl=1{% else %}?ssl=0{% endif %}{% endif %}{% endfor %}

# Where to store Tacker state files.  This directory must be writable by the
# user executing the agent.
state_path = {{ tacker_system_user_home }}

# Where to store lock files
lock_path = $state_path/lock

policy_file = {{ tacker_etc_dir }}/policy.json

# log_format = %(asctime)s %(levelname)8s [%(name)s] %(message)s
# log_date_format = %Y-%m-%d %H:%M:%S

# use_syslog                           -> syslog
# log_file and log_dir                 -> log_dir/log_file
# (not log_file) and log_dir           -> log_dir/{binary_name}.log
# use_stderr                           -> stderr
# (not user_stderr) and (not log_file) -> stdout
# publish_errors                       -> notification system

use_journal = True
use_syslog = False
# syslog_log_facility = LOG_USER

# use_stderr = True
# log_file =
# log_dir =

# publish_errors = False

# Address to bind the API server to
bind_host = {{ tacker_bind_address }}

# Port the bind the API server to
bind_port = {{ tacker_service_port }}

# (ListOpt) List of service plugin entrypoints to be loaded from the
# tacker.service_plugins namespace. See setup.cfg for the entrypoint names of
# the plugins included in the tacker source distribution. For compatibility
# with previous versions, the class name of a plugin can be specified instead
# of its entrypoint name.
#
# service_plugins =
# Example: service_plugins = router,firewall,lbaas,vpnaas,metering
service_plugins = nfvo,vnfm

# The strategy to be used for auth.
# Supported values are 'keystone'(default), 'noauth'.
auth_strategy = keystone

[agent]
# Use "sudo tacker-rootwrap /etc/tacker/rootwrap.conf" to use the real
# root filter facility.
# Change to "sudo" to skip the filtering and just run the comand directly
# root_helper = sudo
root_helper = sudo {{ tacker_bin }}/tacker-rootwrap {{ tacker_etc_dir }}/rootwrap.conf

[nfvo]
vim_drivers = openstack

[keystone_authtoken]
signing_dir = /var/cache/tacker
project_domain_name = {{ tacker_service_project_domain_id }}
project_name = {{ tacker_service_project_name }}
user_domain_name = {{ tacker_service_user_domain_id }}
username = {{ tacker_service_user_name }}
password = {{ tacker_service_password }}
auth_url = {{ keystone_service_adminuri }}
www_authenticate_uri = {{ keystone_service_internaluri }}
auth_type = {{ tacker_keystone_auth_plugin }}

[database]
# This line MUST be changed to actually run the plugin.
# Example:
# connection = mysql://root:pass@127.0.0.1:3306/tacker
# Replace 127.0.0.1 above with the IP address of the database used by the
# main tacker server. (Leave it as is if the database runs on this host.)
# connection = sqlite://
# NOTE: In deployment the [database] section and its connection attribute may
# be set in the corresponding core plugin '.ini' file. However, it is suggested
# to put the [database] section and its connection attribute in this
# configuration file.
connection = mysql+pymysql://{{ tacker_galera_user }}:{{ tacker_container_mysql_password }}@{{ tacker_galera_address }}/{{ tacker_galera_database }}?charset=utf8{% if tacker_galera_use_ssl | bool %}&ssl_ca={{ tacker_galera_ssl_ca_cert }}{% endif %}

# Specify drivers for mgmt
mgmt_driver = noop,openwrt

# Specify drivers for monitoring
monitor_driver = ping, http_ping

[vim_keys]
use_barbican = {{ barbican_keys_backend | bool }}
openstack = {{ tacker_etc_dir }}/vim/fernet_keys

[oslo_messaging_rabbit]
ssl = {{ tacker_oslomsg_notify_use_ssl | bool }}

[oslo_messaging_notifications]
driver = {{ (tacker_ceilometer_enabled | bool) | ternary('messagingv2', 'noop') }}
transport_url = {{ tacker_oslomsg_notify_transport }}://{% for host in tacker_oslomsg_notify_servers.split(',') %}{{ tacker_oslomsg_notify_userid }}:{{ tacker_oslomsg_notify_password }}@{{ host }}:{{ tacker_oslomsg_notify_port }}{% if not loop.last %},{% else %}/{{ tacker_oslomsg_notify_vhost }}{% if (tacker_oslomsg_notify_use_ssl | lower) | bool %}?ssl=1{% else %}?ssl=0{% endif %}{% endif %}{% endfor %}
